#include <iostream>
using namespace std;
typedef long long LL;
const LL mod = 998244353;
// 可以发现，一对顺序相反的排序相加在一起的和是一个定值
// 该结果是 0 + 1 + 2 + ... + (n - 1) = (n - 1) * n / 2
// 而一共有n!/2对顺序相反的对数
// 所以总共的答案就是 n! * n * (n - 1) / 4
int main()
{
  LL n;
  cin >> n;
  LL s = 1;
  for(int i = 3; i <= n; ++i)
    s = (s * i) % mod;
  LL tmp = (n * (n - 1) / 2) % mod;
  cout << (s * tmp) % mod << endl; 
  return 0;
}